#ifndef __AtConfig_h
#define __AtConfig_h

#include <Arduino.h>
#include <EEPROM.h>
#include <ArduinoJson.h>

#define ATCONFIG_DEBUG_LEVEL 1

#define SerialAT Serial

#define ADDR_BASE_CONF 10
struct BaseConf {
  char update_url[100];
	char name[20];
	char version[10];
	char model[10];
	char create_time[20];

	char wifi_ssid[20];
	char wifi_password[20];

	char mqtt_server[20];
	int mqtt_port=0;
	char mqtt_clientid[32];
	char mqtt_sub[30];
	char mqtt_pub[30];
	char mqtt_user[10];
	char mqtt_password[10];
};

// 运行状态
enum sAtConfig{ 
  ATCONFIG_START,  
  ATCONFIG_CONF,  
  ATCONFIG_QUIT,  
};

class AtConfig
{
  public:
    AtConfig(); //构造函数
    void setup();
    void waitAtCommand();
    void readConf(BaseConf *conf);
    void writeConf(String json_str);
    void write(int addr, String value);
    String read(int addr);
    void waitResponse(uint32_t timeout_ms);

    // 运行状态
    int status = ATCONFIG_START;

};

#endif
